The present invention pertains in general to playing of media files, and in particular to downloading media files in segments.
Methods are known for streaming and downloading media content, for example, across the Internet from a server to a client device in response to a client request for media content. Existing technology uses a traditional static file serving interface, in which a complete file is served to a client. These technologies serve either entire files or client-requested byte ranges of files. The file is usually stored or cached on the server for playback. Typically, if a user wants to view media content in this manner, a specialized client player application for playing the media content must be downloaded and installed on a client system. The server and client player application then use specialized protocols, file formats, and video encodings to transmit, decode and playback the media content.
Media files, especially video files, are typically very large and thus take a long time to download to the end user. To avoid long delays to the end user caused by waiting for an entire media file to download, existing media player technology begins playing a media file as soon as the beginning of the media file has downloaded. FIG. 7 depicts a media player 705 using a standard media download process. The download proceeds continuously starting from the beginning of the media file, as indicated by the leftmost end 715 of the media file timeline bar 710. The user of the media player cannot advance to a later portion of the media file, for example at time location 720, because that portion has not yet been reached in the download process, shown by the dark bar 725. This is particularly inconvenient in the case of a long file, which a user might prefer to preview portions of prior to allocating time and resources to download the entire video.